package com.spring.lo.framework.factory.support;

import com.spring.lo.framework.factory.config.BeanDefinition;

import java.util.List;

/**
 * BeanDefinition的注册中心
 * @author zhangbh
 * 2023-05-28 17:27
 **/
public interface BeanDefinitionRegistry {

    /**
     * 注册BeanDefinition
     * @param beanName 标识
     * @param beanDefinition BeanDefinition
     */
    void registerBeanDefinition(String beanName, BeanDefinition beanDefinition);

    /**
     * 获取BeanDefinition
     * @param beanName 标识
     * @return BeanDefinition
     */
    BeanDefinition getBeanDefinition(String beanName);

    /**
     * 获取所有的BeanDefinition
     * @return 注册上的BeanDefinition
     */
    List<BeanDefinition> getBeanDefinitions();
}
